package br.unicamp.ic.inf300.arena.modelo.artistico;

import java.sql.Time;
/**
 * Venda de Bilhetes Eletronicos para Espetaculos (Arena Entretenimento S.A.)
 * PecaTeatral.java
 */

public class PecaTeatral extends Espetaculo {
	private String companiaTeatro;
	private String patrocinadores;

	//--
	public PecaTeatral() {
		super();
		super.setTipo(Espetaculo.TIPO_ESPETACULO_PECA);
	}

	/**
	 * 
	 * @param titulo
	 * @param genero
	 * @param sinopse
	 * @param censura
	 * @param elenco
	 * @param duracao
	 * @param companiaTeatro
	 * @param patrocinadores
	 */
	public PecaTeatral(String titulo, String genero, String sinopse,
			int censura, String elenco, Time duracao, String companiaTeatro,
			String patrocinadores) {
		super(titulo, genero, sinopse, censura, elenco, duracao);
		super.setTipo(Espetaculo.TIPO_ESPETACULO_PECA);
		this.setCompaniaTeatro(companiaTeatro);
		this.setPatrocinadores(patrocinadores);
	}

	public String getCompaniaTeatro() {
		return companiaTeatro;
	}

	public void setCompaniaTeatro(String companiaTeatro) {
		this.companiaTeatro = companiaTeatro;
	}

	public String getPatrocinadores() {
		return patrocinadores;
	}

	public void setPatrocinadores(String patrocinadores) {
		this.patrocinadores = patrocinadores;
	}

	/**
	 * @return <code>String</code>
	 * JUtils plugin ;-)
	 */
	public String toString()
	{
	    final String TAB = "    ";
	    
	    StringBuffer retValue = new StringBuffer();
	    
	    retValue.append("PecaTeatral ( ")
	        .append(super.toString()).append(TAB)
	        .append("companiaTeatro = ").append(this.companiaTeatro).append(TAB)
	        .append("patrocinadores = ").append(this.patrocinadores).append(TAB)
	        .append(" )");
	    
	    return retValue.toString();
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result
				+ ((companiaTeatro == null) ? 0 : companiaTeatro.hashCode());
		result = prime * result
				+ ((patrocinadores == null) ? 0 : patrocinadores.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (!super.equals(obj))
			return false;
		if (getClass() != obj.getClass())
			return false;
		final PecaTeatral other = (PecaTeatral) obj;
		if (companiaTeatro == null) {
			if (other.companiaTeatro != null)
				return false;
		} else if (!companiaTeatro.equals(other.companiaTeatro))
			return false;
		if (patrocinadores == null) {
			if (other.patrocinadores != null)
				return false;
		} else if (!patrocinadores.equals(other.patrocinadores))
			return false;
		return true;
	}

	
}